package cn.virens.database.common;

import java.util.List;
import java.util.Map;

import com.github.pagehelper.PageInfo;

import cn.virens.exception.APIException;
import cn.virens.util.page.Page;

/**
 * 通用的service接口
 * 
 * @文件 :BaseService.java
 * @作者 :cn.loioi
 * @创建时间 :2016年10月13日 下午1:24:13
 */
public interface BaseService<T> {

	/**
	 * 插入一条数据
	 */
	int insert(T record) throws APIException;

	/**
	 * 删除一条数据
	 */
	int delete(Object id) throws APIException;

	/**
	 * 更新一条数据
	 */
	int update(T record) throws APIException;

	/**
	 * 查询全部数据
	 */
	List<T> selectAll(Map<String, Object> param) throws APIException;

	/**
	 * 根据ID查询一条数据
	 */
	T selectOne(Object id) throws APIException;

	/**
	 * 根据 分页信息查询列表
	 * 
	 * @param page
	 * @return
	 */
	PageInfo<?> selectPage(Page page) throws APIException;

}
